@echo off
chcp 65001 >nul
echo ====================================================
echo  SpringBoot 支付服务部署工具
echo ====================================================

REM 设置JDK环境
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181"
set "PATH=%JAVA_HOME%\bin;%PATH%"

REM 设置默认值
set PROFILE=dev
if not "%~1"=="" set PROFILE=%~1

echo [配置] 环境: %PROFILE%
echo [配置] JDK路径: %JAVA_HOME%

REM 检查Java是否可用
java -version >nul 2>&1
if %ERRORLEVEL% neq 0 (
    echo [错误] Java未安装或未正确配置。请检查JAVA_HOME设置。
    echo 当前JAVA_HOME: %JAVA_HOME%
    goto :end
)

REM 创建日志目录
if not exist "logs" mkdir "logs"

echo [信息] 正在构建项目 (环境: %PROFILE%)...
call mvn clean package -Dmaven.test.skip=false -P%PROFILE%

if %ERRORLEVEL% neq 0 (
    echo [错误] 构建失败，请检查错误信息。
    goto :end
)

echo [成功] 构建完成!

REM 检查JAR文件是否存在
if not exist "target\payservice.jar" (
    echo [错误] JAR文件不存在: target\payservice.jar
    echo 请先构建项目或检查JAR文件路径是否正确。
    goto :end
)

echo [信息] 正在启动应用 (环境: %PROFILE%)...

REM 停止已运行的应用
if exist "application.pid" (
    set /p PID=<"application.pid" 2>nul
    if not "%PID%"=="" (
        taskkill /F /PID %PID% 2>nul
        if %ERRORLEVEL%==0 (
            echo [成功] 已停止之前运行的应用 (PID: %PID%)
        )
    )
    del "application.pid" 2>nul
)

REM 启动应用
start "SpringBoot Application" cmd /c "java -Xms256m -Xmx512m -XX:+UseG1GC -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar target\payservice.jar --spring.profiles.active=%PROFILE% --spring.pid.file=application.pid > logs\application.log 2>&1"

echo [信息] 应用已在后台启动，日志文件: logs\application.log
echo [提示] 使用 taskkill /F /PID 进程ID 命令可以停止应用

:end
echo ==================================================== 